package com.link.ppt.Api;

import com.link.ppt.Model.Bean.BaseBean;
import com.link.ppt.Model.Bean.KeywordsBean;
import com.link.ppt.Model.Bean.PPTBean;
import com.link.ppt.Model.Bean.PPTDetailBean;
import com.link.ppt.Model.Bean.PPTResponseBean;
import com.link.ppt.Model.Bean.ScorePPT;

import java.util.HashMap;
import java.util.Map;

import okhttp3.RequestBody;
import retrofit2.http.FieldMap;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.PartMap;
import rx.Observable;

/**
 * Created by liucxu on 2017/7/11.
 */

public interface PPTService {
    @FormUrlEncoded
    @POST("ppt.do")
    Observable<PPTBean> RequestPPTStream(@FieldMap HashMap<String, String> params);

    @FormUrlEncoded
    @POST("ppt.do")
    Observable<PPTBean> RequestMyPublishStorePPTStream(@FieldMap HashMap<String, String> params);

    @FormUrlEncoded
    @POST("ppt.do")
    Observable<ScorePPT> LikePPTPoint(@FieldMap HashMap<String, String> params);

    @FormUrlEncoded
    @POST("ppt.do")
    Observable<PPTDetailBean> QueryPPTDetail(@FieldMap HashMap<String, String> params);

    @FormUrlEncoded
    @POST("ppt.do")
    Observable<BaseBean> FavPPT(@FieldMap HashMap<String, String> params);

    @FormUrlEncoded
    @POST("ppt.do")
    Observable<BaseBean> ReportPPT(@FieldMap HashMap<String, String> params);

    @FormUrlEncoded
    @POST("ppt.do")
    Observable<BaseBean> SubscribePPT(@FieldMap HashMap<String, String> params);

    @FormUrlEncoded
    @POST("ppt.do")
    Observable<BaseBean> DeletePPT(@FieldMap HashMap<String, String> params);

    @FormUrlEncoded
    @POST("ppt.do")
    Observable<BaseBean> PublishPPTUrl(@FieldMap HashMap<String, String> params);

    @FormUrlEncoded
    @POST("ppt.do")
    Observable<BaseBean> CommonRequest(@FieldMap HashMap<String,String> params);

    @FormUrlEncoded
    @POST("ppt.do")
    Observable<PPTResponseBean> RequestImageId(@FieldMap HashMap<String,String> params);

    @Multipart
    @POST("ppt.do")
    Observable<BaseBean> PublishPPTWithPic(@PartMap Map<String, RequestBody> params);

    @FormUrlEncoded
    @POST("ppt.do")
    Observable<KeywordsBean> RequestHotKeywords(@FieldMap Map<String, String> params);
}
